package com.zhuhjay.service.system.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhuhjay.service.system.enums.OauthTypeEnum;
import com.zhuhjay.service.system.mapper.SystemOauthMapper;
import com.zhuhjay.service.system.model.entity.SystemOauth;
import com.zhuhjay.service.system.service.SystemOauthService;
import org.springframework.stereotype.Service;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author ZhuHJay
 * @since 2023-08-04
 */
@Service
public class SystemOauthServiceImpl extends ServiceImpl<SystemOauthMapper, SystemOauth> implements SystemOauthService {

    @Override
    public SystemOauth createOauth(Integer id, OauthTypeEnum oauthTypeEnum, String openid) {
        SystemOauth oauth = new SystemOauth();
        oauth.setUserId(id);
        oauth.setOauthType(oauthTypeEnum.name());
        oauth.setOpenId(openid);
        this.save(oauth);
        return oauth;
    }

    @Override
    public SystemOauth getOauthByUserId(Integer userId, OauthTypeEnum oauthTypeEnum) {
        return this.lambdaQuery()
                .eq(SystemOauth::getUserId, userId)
                .eq(SystemOauth::getOauthType, oauthTypeEnum.name())
                .one();
    }

    @Override
    public Boolean isBindWx(Integer id) {
        return this.lambdaQuery()
                .eq(SystemOauth::getUserId, id)
                .eq(SystemOauth::getOauthType, OauthTypeEnum.WECHAT.name())
                .count() > 0;
    }
}
